package com.aebiz.usercenter.common.util;

import java.io.IOException;
import java.io.OutputStream;
import java.util.Iterator;
import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.stereotype.Component;

@Component("poiUtil")
public class PoiUtil {

	/**
	 * 有一个方法:
	 * 参数:就是数据库中的数据;行和列的概念,List<List<键:就是列,值:单元格的内容>>
	 * 返回:一个输出流
	 * 把这个输出流,插到response上,就可以下载了
	 * @param dataList
	 */
	public void writeFile(List<List<String>> dataList,OutputStream os){
		/*创建一个xls*/
		Workbook wb=new HSSFWorkbook();
		try {
			/* 参数为:sheet的名字 */
			Sheet sheet=wb.createSheet();
			int rowCount=0;
			for (Iterator iterator = dataList.iterator(); iterator.hasNext();) {
				List<String> list = (List<String>) iterator.next();
				/*
				 * 参数:表示第几行
				 */
				Row row=sheet.createRow(rowCount);
				int cellCount=0;
				/*参数表示单元格*/
				for (Iterator iterator2 = list.iterator(); iterator2.hasNext();) {
					String value = (String) iterator2.next();
					/* 单元格 
					 * 参数:第几列*/
					Cell cell=row.createCell(cellCount);
					cell.setCellValue(value);
					cellCount++;
				}
				rowCount++;
			}
		    /* 写入文件 */
			wb.write(os);
			/* 关闭流 */
			os.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}
